




public class SuperMain {
	public static void main(String [] args){
		System.out.println("\t" + State.HeuristicType.MANHATTAN + ":");
		System.out.println("\t==========");
		State.hType = State.HeuristicType.MANHATTAN; 
		State state1 = new State(null);
		HeuristicSearch hs1 = new HeuristicSearch(state1);
		//Print solution path
		System.out.println("\n****MANHATTAN SOLUTION PATH: ****");
		System.out.println("----------------------------------");
		System.out.println(hs1.print());
		
		System.out.println("\n****MANHATTAN SEARCH PATH: ****\n" + "(Length: " + hs1.closedList().size() + ")");
		System.out.println("---------------------------------");
		System.out.println(hs1.printClosedList());
		

		System.out.println("\n\n*****************************************");
		
		System.out.println();
		System.out.println("\t" + State.HeuristicType.MISPLACED + ": ");
		System.out.println("\t==========");
		State.hType = State.HeuristicType.MISPLACED; 
		State state2 = new State(null);
		HeuristicSearch hs2 = new HeuristicSearch(state2);
		//Print solution path
		System.out.println("\n****MISPLACED SOLUTION PATH: ****");
		System.out.println("----------------------------------");
		System.out.println(hs2.print());
		//Print Search Path
		System.out.println("\n****MISPLACED SEARCH PATH: ****\n"+ "(Length: " + hs2.closedList().size() + ")");
		System.out.println("---------------------------------");
		System.out.println(hs2.closedList());
		
		System.out.println("\n\n*****************************************");
		
		System.out.println();
		System.out.println("\t"+ State.HeuristicType.THEOTHERONE + ": ");
		System.out.println("\t============");
		State.hType = State.HeuristicType.THEOTHERONE; 
		State state3 = new State(null);
		HeuristicSearch hs3 = new HeuristicSearch(state3);
		//Print solution path
		System.out.println("\n****THEOTHERONE SOLUTION PATH: ****");
		System.out.println("----------------------------------");
		System.out.println(hs3.print());
		//Print Search path
		System.out.println("\n****THEOTHERONE SEARCH PATH: ****\n"+ "(Length: " + hs3.closedList().size() + ")");
		System.out.println("---------------------------------");
		System.out.println(hs3.print());
		
		System.out.println("\n\n*****************************************");
		
		System.out.println();
		System.out.println("\t" + State.HeuristicType.EUCLIDEAN + ": ");
		System.out.println("\t==========");
		State.hType = State.HeuristicType.EUCLIDEAN; 
		State state4 = new State(null);
		HeuristicSearch hs4 = new HeuristicSearch(state4);
		System.out.println("\n****EUCLIDEAN SOLUTION PATH: ****");
		System.out.println("----------------------------------");
		//Print solution path
		System.out.println(hs4.print());
		//Print Search path
		System.out.println("\n****EUCLIDEAN SEARCH PATH: ****\n"+ "(Length: " + hs4.closedList().size() + ")");
		System.out.println("----------------------------------");
		System.out.println(hs4.print());
		

	}
}
